use crate::cli::sim::init::sim_init;
use clap::Subcommand;

#[derive(Subcommand, Debug, Clone)]
pub enum SimSubcommand {
    ///仿真平台初始化操作
    Init {
        ///仿真平台(可选);
        ///支持的仿真平台可选值为：1. qemu;
        ///若未指定，则默认启动qemu仿真平台。
        #[clap(short, long)]
        env: String,
        ///使能虚拟网卡(可选)。
        #[clap(short, long)]
        enable_vnet: Option<bool>,
        ///显示启动仿真平台的指令信息(可选)。
        #[clap(short, long)]
        show_env_cmd: Option<bool>,
        ///指定体系架构(可选);
        ///支持的体系架构有：1. arm;
        ///               2. arm64;
        ///若未指定，则默认为【arm】架构。
        #[clap(short, long)]
        arch: Option<String>,
    },
}

pub fn sim_run(cmd: SimSubcommand) {
    match cmd {
        SimSubcommand::Init {
            env,
            enable_vnet,
            show_env_cmd,
            arch,
        } => sim_init(env, enable_vnet, show_env_cmd, arch),
    }
}
